package org.cqust.backend.dto.request.mission;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.Lob;
import lombok.Data;
/**
 * 数据传输对象（DTO），用于表示最小化的步骤信息。
 */
@Data
public class StepMiniRequestDTO {

    /**
     * 任务的唯一标识符。
     * 这个字段用于标识一个特定的任务。
     */
    @Schema(description = "任务的唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long missionId;

    /**
     * 任务的类型。
     * 这个字段用于标识任务的类型，如“TopologyCheck”、“CommandCheck”等。
     */
    @Schema(description = "任务的类型",example = "TopologyCheck",requiredMode = Schema.RequiredMode.REQUIRED)
    private String taskType;

    /**
     * 步骤的标题。
     * 这个字段用于描述步骤的简短名称。
     */
    @Schema(description = "步骤的标题", requiredMode = Schema.RequiredMode.REQUIRED)
    private String title;

    /**
     * 步骤的详细描述。
     * 这个字段用于提供步骤的详细信息。
     */
    @Schema(description = "步骤的详细描述", requiredMode = Schema.RequiredMode.REQUIRED)
    private String description;

    /**
     * 步骤的得分。
     * 这个字段表示完成该步骤可以获得的分数。
     */
    @Schema(description = "步骤的得分", requiredMode = Schema.RequiredMode.REQUIRED)
    private Float score;

    /**
     * 步骤的配置信息。
     * 这个字段用于存储步骤的配置信息，如检测内容等。
     */
    @Lob
    @Schema(description = "步骤的配置信息", requiredMode = Schema.RequiredMode.REQUIRED)
    private String configXml;

    /**
     * 步骤的顺序。
     * 这个字段用于标识步骤在任务中的顺序。
     */
    @Schema(description = "步骤的顺序", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long order;

    /**
     * 默认构造函数。
     */
    public StepMiniRequestDTO() {
    }
}
